package com.cy.db.sys.dao;

import com.cy.db.common.vo.CheckBox;
import com.cy.db.sys.entity.SysRole;
import com.cy.db.sys.vo.SysRoleMenuVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface SysRoleDao {
    /**
     *  基于角色名查询角色相关信息
     * @param username 用户(角色)名
     * @return 统计的个数
     */
    long getRowCount(@Param("username") String username);

    /**
     *  按条件从指定的位置查询当前角色信息
     * @param username 用户名
     * @param startIndex 起始位置
     * @param pageSize 页面大小
     * @return 当前页的角色信息
     */
    List<SysRole> findPageObjects(
            @Param("username") String username,
            @Param("startIndex") long startIndex,
            @Param("pageSize") int pageSize);

    /**
     *  根据id删除当前角色信息
     * @param id 角色id
     * @return 删除的记录数
     */
    int deleteObjectId(Integer id);

    /**
     *  添加角色自身信息
     * @param entity
     * @return 添加的记录数
     */
    int insertObject(SysRole entity);

    /**
     *  根据id查询某个记录
     * @param id id
     * @return SysRoleMenuVO
     */
    SysRoleMenuVO findObjectById(Integer id);

    /**
     * 修改角色信息
     * @param entity 角色对象
     * @return 修改的记录数
     */
    int updateObject(SysRole entity);

    /**
     *  用户页面角色呈现
     * @return List<CheckBox>
     */
    List<CheckBox> findObjects();
}
